package com.sumainfor.wx.tenant.feign.Zfeign;

import com.sumainfor.common.util.JsonResult;
import com.sumainfor.wx.tenant.fallback.ZfallBack.ZpcGmioFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.Map;


/**微信端租客的服务
 */
@FeignClient(name = "tANGNEST-PC-GMIo", fallback = ZpcGmioFallback.class)
public interface ZpcGmioFeign {

    /**
     * 查询房源与业主的合同截止时间
     */
    @GetMapping("/wechat/tenant/director/DiChargesDept/getChargesDeptWx")
    JsonResult getChargesDeptWx(@RequestParam Map<String,Object> params);
    /**
     * 查询水表录入记录的列表
     */
    @GetMapping("/tenant/key/secretary/SeWxTemporary/getHouTemporaryList")
    JsonResult getHouTemporaryList(@RequestParam Map<String,Object> params);
    /**
     * 查询问卷调查()
     */
    @GetMapping("/tenant/key/housekeeper/HoSurveyTopic/getHoSurveyTopicList")
    JsonResult getHoSurveyTopicList(@RequestParam Map<String,Object> params);
    /**
     *租客提交问卷
     */
    @PostMapping("/tenant/key/housekeeper/HoSurveyTenant/addHoSurveyTenant")
    JsonResult addHoSurveyTenant(@RequestBody Map<String,Object> params);
    /**
     *延期退申请
     */
    @PostMapping("/tenant/key/director/DiWxDeferredApply/addDi")
    JsonResult addDi(@RequestBody Map<String,Object> params);
    /**
     *退租申请
     */
    @PostMapping("/tenant/key/director/DiWxWithdrawalApply/addDiWith")
    JsonResult addDiWith(@RequestBody Map<String,Object> params);
    /**
     *  租客端查询是否发起过退租申请
     */
    @GetMapping("/tenant/key/director/DiWxWithdrawalApply/getDiWithdrawalApplyCount")
    JsonResult getDiWithdrawalApplyCount(@RequestParam Map<String,Object> params);
    /**
     *租客取消退租申请
     */
    @PostMapping("/tenant/key/director/DiWxWithdrawalApply/updateDilApply")
    JsonResult updateDilApply(@RequestBody Map<String,Object> params);
    /**
     * 微信统一下单（生成预付订单）
     */
    @PostMapping("/tenant/key/secretary/SeWxTemporary/getUnifiedorder")
    JsonResult getUnifiedorder(@RequestBody Map<String,Object> params);
    /**
     *续签合同的时候把上一份合同的账单在微信统一下单的详情
     */
    @PostMapping("/tenant/key/secretary/SeWxTemporary/getOrderQuery")
    JsonResult getOrderQuery(@RequestBody Map<String,Object> params);

    /**
     * 续签的时候查询上一份合同的全部未支付账单
     */
    @PostMapping("/tenant/key/housekeeper/HoSurveyTopic/getHoUnpaidBillList")
    JsonResult getHoUnpaidBillList(@RequestBody Map<String,Object> params);



    /////////////////////////////////////////////////////////////////////////
    // zc定义
    /////////////////////////////////////////////////////////////////////////
    @PostMapping("/tenant/key/housekeeper/HoSurveyTopic/getPaIdNoBill")
    JsonResult getPaIdNoBill(@RequestBody Map<String,Object> params);





    /**
     * 微信关闭预订单
     */
    @PostMapping("/tenant/key/secretary/SeWxTemporary/CloseOrder")
    JsonResult CloseOrder(@RequestBody Map<String,Object> params);
    /**
     * 租客端续签的时候查询续签合同的信息
     */
    @PostMapping("/tenant/key/housekeeper/HoSurveyTopic/getRenUnifiedPact")
    JsonResult getRenUnifiedPact(@RequestBody Map<String,Object> params);
    /**
     * 租客端续签的时候查询续签合同的信息（生成预付订单）
     */
    @PostMapping("/tenant/key/secretary/SeWxTemporary/getRenUnifiedorder")
    JsonResult getRenUnifiedorder(@RequestBody Map<String,Object> params);
    /**
     * 租客端续签的时候查询续签合同的信息（查询维修支付订单的信息）
     */
    @PostMapping("/tenant/key/secretary/SeWxTemporary/getRenOrderQuery")
    JsonResult getRenOrderQuery(@RequestBody Map<String,Object> params);
    /**
     * 租客端续签合同的时候上传水电押金的支付凭证
     */
    @PostMapping("/tenant/key/secretary/SeWxTemporary/addSeBillPay")
    JsonResult addSeBillPay(@RequestBody Map<String,Object> params);
    /**
     * 租客端续签合同的时候上传水电押金的支付凭证
     */
    @PostMapping("/tenant/key/secretary/SeWxTemporary/getDelayUnifiedorder")
    JsonResult getDelayUnifiedorder(@RequestBody Map<String,Object> params);
    /**
     *租客端延期退(查询微信订单的支付状态)
     */
    @PostMapping("/tenant/key/secretary/SeWxTemporary/getDelayOrderQuery")
    JsonResult getDelayOrderQuery(@RequestBody Map<String,Object> params);
    /**
     * 租客端其他账单微信支付（生成预付订单）
     */
    @PostMapping("/tenant/key/secretary/SeWxTemporary/getOtherUnifiedorder")
    JsonResult getOtherUnifiedorder(@RequestBody Map<String,Object> params);
    /**
     * 租客端延期退(查询微信订单的支付状态)
     */
    @PostMapping("/tenant/key/secretary/SeWxTemporary/getOtherOrderQuery")
    JsonResult getOtherOrderQuery(@RequestBody Map<String,Object> params);
    /**
     *租客端智能电表充值
     */
    @PostMapping("/tenant/key/housekeeper/HoSurveyTenant/addHoRecharge")
    JsonResult addHoRecharge(@RequestBody Map<String,Object> params);
    /**
     *智能设备充值被驳回后重新上传支付凭证
     */
    @PostMapping("/tenant/key/secretary/SeWxTemporary/updateBillPayStatus")
    JsonResult updateBillPayStatus(@RequestBody Map<String,Object> params);
    /**
     *智能设备充值被驳回取消账单
     */
    @PostMapping("/tenant/key/secretary/SeWxTemporary/updateBillDiscard")
    JsonResult updateBillDiscard(@RequestBody Map<String,Object> params);
    /**
     *租客端查询账单的历史缴费记录
     */
    @GetMapping("/tenant/key/secretary/SeWxTemporary/getPaymePrice")
    JsonResult getPaymePrice(@RequestParam Map<String,Object> params);

    /**
     * 获取首月账单
     * @param params
     * @return
     */
    @PostMapping("/tenant/key/bill/getFirstRoomGEW")
    JsonResult getFirstRoomGEW(@RequestBody Map<String,Object> params);

    /**
     * 增加支付信息
     * @param params
     * @return
     */
    @PostMapping("/tenant/key/bill/AddBillPay")
    JsonResult AddBillPay(@RequestBody Map<String,Object> params);

    @PostMapping("/tenant/key/bill/UpdateBill")
    JsonResult UpdateBill(@RequestBody Map<String,Object> params);

    @PostMapping("/tenant/key/bill/AddPayWechat")
    JsonResult AddPayWechat(@RequestBody Map<String,Object> params);

    @PostMapping("/tenant/key/bill/getBillPay")
    JsonResult getBillPay(@RequestBody Map<String,Object> params);

    @PostMapping("/tenant/key/bill/addTenantBill")
    JsonResult addTenantBill(@RequestBody Map<String,Object> params);


    @GetMapping("/tenant/key/bill/getBillPays")
    JsonResult getBillPays(@RequestParam Map<String,Object> params);


    @GetMapping("/tenant/key/bill/geiTenBill")
    JsonResult geiTenBill(@RequestParam Map<String,Object> params);

    @PostMapping("/tenant/key/bill/UpdateWechat")
    JsonResult UpdateWechat(@RequestBody Map<String,Object> params);
}
